This invention relates in general to distributed computing environments, and in particular, to a dynamic facility for ensuring multicast routing of messages within such an environment, irrespective of failure of one or more established multicast routing node.
Many network environments enable messages to be forwarded from one site within the network to one or more other sites using a multicast protocol. Typical multicast protocols send messages from one site to one or more other sites based on information stored within a message header., One example of a system that includes such a network environment is a publish/subscribe system. In publish/subscribe systems, publishers post messages and subscribers independently specify categories of events in which they are interested. The system takes the posted messages and includes in each message header the destination information of those subscribers indicating interest in the particular message. The system then uses the destination information in the message to forward the message through the network to the appropriate subscribers.
In large systems, there may be many subscribers interested in a particular message. Thus, a large list of destinations would need to be added to the message header for use in forwarding the message. The use of such a list, which can even be longer than the message itself, can clearly degrade system performance. Another approach is to use a multicast group, in which destinations are statically bound to a group name, and then that name is included in the message header. The message is sent to all those destinations statically bound to the name. This technique has the disadvantage of requiring static groups of destinations, which restricts flexibility in many publish/subscribe systems. Another disadvantage of static groups occurs upon failure of a destination node within the group.
Multicast messages must be routed in order to reach multiple networks in a large distributed computing environment. Multicast routing is complicated by the fact that some older routers do not support such routing. In that case, routing is conventionally solved by manually configuring selected hosts (i.e., computing nodes) as xe2x80x9crouting pointsxe2x80x9d. Such routing points are capable of running host discovery protocols that enable them to configure their routing tables in such a way that all nodes of the system will then be reachable via multicast. In some cases, the multicast messages have to be routed through IP routers which do not support multicast routing. In such cases, a xe2x80x9ctunnelxe2x80x9d has to be configured such that two hosts in different networks can act as routing points for multicast messages. For further information on xe2x80x9ctunnelingxe2x80x9d reference an Addison/Wesley publication entitled xe2x80x9cTCP/IP Illustrated,xe2x80x9d by Gary Wright and Richard Stevens, ISBN 0-201-63354-X (1995), the entirety of which is hereby incorporated herein by reference. Again, tunneling end-points are usually configured manually, for example, by a network administrator.
The above-summarized solution has the weakness that the failure of any one such static routing point or node will isolate nodes of the corresponding subsystem. There is no recovery mechanism currently that can guarantee the reachability of all nodes given the failure of one or more nodes in the distributed computing environment. It could be argued that manual configuration of all nodes as routing points would allow survival of any failure. However, such a solution is still unsatisfactory because the deployment of each node as a routing node imposes unnecessary overhead, and significantly multiplies the number of messages required to be forwarded due to the increased number of routes between the nodes. The resulting degradation of transmission bandwidth is clearly unacceptable.
In view of the above, a need exists for a mechanism capable of monitoring the nodes of a distributed computing environment, and in particular, the routing nodes, and automatically react to a failure of any routing node within the environment. Furthermore, it is desirable that only one node act as a routing point to/from a network, to avoid additional overhead and pollution of network messages. This invention addresses these needs by providing a dynamic multicast routing facility for the distributed processing environment.
Briefly described, the invention comprises in one aspect a method for dynamically ensuring multicast messaging within-a distributed computing environment. The method includes: establishing multiple groups of computing nodes within the distributed computing environment; selecting one node of each group of computing nodes as a group leader node; forming a group of group leader nodes (GL_group) and selecting a group leader of the GL_group; and automatically creating a virtual interface for multicast messaging between the group leader node of the GL_group and at least one other group leader node within the GL_group, thereby establishing multicast routing between groups of nodes of the distributed computing environment.
In another aspect, the invention comprises,a processing method for a distributed computing environment having multiple networks of computing nodes. Each network has at least one computing node. At least one computing node of the multiple networks of computing nodes functions as a multicast routing node. The method includes: automatically responding to a failure at the at least one computing node functioning as multicast routing node to reassign the multicast routing function; and wherein the automatically responding includes dynamically reconfiguring the distributed computing environment to replace each failed multicast routing node of the at least one multicast routing node with another computing node of the multiple networks to maintain reachability of multicast messages to all functional computing nodes of the distributed computing environment.
In yet another aspect, the invention comprises a system for ensuring multicast messaging within a distributed computing environment. The system includes multiple groups of computing nodes within the distributed computing environment, and means for selecting one node of each group of computing nodes as a group leader node. The system further includes means for forming a group of group leader nodes (GL_group) and for selecting a group leader of the GL_group. In addition, a mechanism is provided for automatically creating a virtual interface for multicast messaging between the group leader node of the GL_group and at least one other group leader node within the GL_group, thereby ensuring multicast routing between groups of nodes of the distributed computing environment.
In still another aspect, a processing system is provided for a distributed computing environment which includes multiple networks of computing nodes. The multiple networks of computing nodes employ multicast messaging, with each network having at least one computing-node, and at least one computing node of the multiple networks of computing nodes functioning as multicast routing node. The system further includes means for automatically responding to a failure at the at least one computing node functioning as multicast routing node to reassign the multicast routing function. The means for automatically responding includes a mechanism for dynamically reconfiguring the distributed computing environment to replace each failed multicast routing node of the at least one multicast routing node with another computing node of the multiple networks of computing nodes to maintain reachability of multicast messages to all functional computing nodes of the distributed computing environment.
In a further aspect, an article of manufacture is presented which includes a computer program product comprising a computer usable medium having computer readable program code means therein for use in ensuring multicast messaging within a distributed computing environment. The computer readable program code means in the computer program product includes computer readable program code means for causing a computer to effect: establishing multiple groups of computing nodes within the distributed computing environment; selecting one node of each group of computing nodes as a group leader node; forming a group of group leader nodes (GL_group) and selecting a group leader of the GL_group; and automatically creating a virtual interface for multicast messaging between the group leader node of the GL_group and at least one other group leader node within the GL_group, thereby establishing multicast routing between groups of nodes of the distributed computing environment.
In a still further aspect, the invention includes an article of manufacture which includes a computer program product comprising a computer usable medium having computer readable program code means therein for maintaining multicast message reachability within a distributed computing environment having multiple networks of computing nodes employing multicast messaging. Each network has at least one computing node, and at least one computing node of the multiple networks of computing nodes functions as multicast routing node. The computer readable program code means in the computer program product includes computer readable program code means for causing a computer to effect: automatically responding to a failure at the at least one computing node functioning as the multicast routing node to reassign the multicast routing function; wherein the automatically responding comprises dynamically reconfiguring the distributed computing environment to replace each failed multicast routing node of the at least one multicast routing node with another computing node of the multiple networks of computing nodes to maintain multicast message reachability to all functional computing nodes of the distributed computing environment.
To restate, the present invention solves the problem of maintaining reachability of multicast messages in a distributed computing system having multiple networks of computing nodes. The solution, referred to as a Dynamic Multicast Routing (DMR) facility, automatically selects another computing node from a network having a failed computing node operating as the multicast routing node. Further, the DMR facility provided herein ensures that only one node of a network will act as a routing point between networks, thereby avoiding host overhead and pollution of network messages inherent, for example, in making each node of the distributed computing environment capable of receiving and sending multicast messages. In one embodiment, the DMR facility utilizes Group Services to be notified immediately of a node failure or communication adapter failure; and automatically responds thereto.
The DMR facility described herein has multiple applications in a distributed computing environment such as a cluster or parallel system. For example, the DMR facility could be used when sending a multicast datagram to a known address for service. An example of the need for a dynamic service facility is the location of the registry servers at boot time. Another use of a DMR facility in accordance with this invention is in the distribution of a given file to a large number of nodes. For example, propagation of a password file by multicast is an efficient way to distribute information. The DMR facility presented herein ensures that the multicast message gets routed to all subnets, independently of which nodes are down at any one time and independent of router box support.